package com.cdz.enums;

import lombok.Getter;

/**
 * 错误信息枚举类
 *
 * 定义了一些常见的错误码和错误信息，用于在业务逻辑中标准化错误处理。
 */
@Getter
public enum ErrorEnum {

    // 用户注册登录
    NAME_EXIST_ERROR(30000, "用户名已经注册！"),
    USERNAME_NO_EXIST_ERROR(30001, "用户名不存在！"),
    PASSWORD_NO_MATCH_ERROR(30002, "密码不匹配！"),
    MISSING_PARAMETER(30003, "缺少必要参数！"),
    USER_BINDED_ERROR(30004, "用户已有绑定对象！"),
    USER_UNBIND_ERROR(30005, "用户未绑定 ！"),
    USER_TOKEN_ERROR(30006, "用户没有权限！"),

    // 手机号登录
    PHONE_NO_MATCH_ERROR(30010, "手机号格式不正确！"),

    CODE_NO_MATCH_ERROR(30011, "验证码有误！"),
    DATA_NO_MATCH_ERROR(30012, "数据有误！"),


    //充电桩
    CHARGING_BINDED_ERROR(30020,"充电桩已有绑定对象！"),
    PILEpASSWORD_NO_MATCH_ERROR(30021,"充电桩密码不匹配！"),
    ID_NO_EXXIST_ERROR(30022,"ID不存在"),

    //文件
    FILE_NO_EXIST_ERROR(30030,"文件不存在"),
    DATA_NO_EXIST_ERROR(30031,"数据不存在"),
    //操作失败
    FAIL_TO_GET_IT(30040,"操作失败");


    // 获取错误码
    private final int code;
    // 获取错误信息
    private final String msg;

    // 构造方法
    ErrorEnum(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    /**
     * 根据错误码获取错误信息
     *
     * @param code 错误码
     * @return 对应的错误信息，若没有匹配的错误码则返回 "未知错误"
     */
    public static String getMsgByCode(int code) {
        for (ErrorEnum error : ErrorEnum.values()) {
            if (error.getCode() == code) {
                return error.getMsg();
            }
        }
        return "未知错误";  // 默认返回未知错误
    }
}
